package com.naiterui.ehp.bs.im.vo;

import java.util.Collections;
import java.util.List;

/**
 * 与具体ORM实现无关的分页参数及查询结果封装.
 * <P>File name : Page.java </P>
 * <P>Author : zhouyanxin </P>
 * <P>Date : 2014-9-18 </P>
 */
public class PageVO<T> {

    // 公共变量
    public static final String ASC = "asc";
    public static final String DESC = "desc";

    public static final int MIN_PAGESIZE = 20;
    public static final int MAX_PAGESIZE = 200;

    public static final int DEFAULT_PAGE = 1;
    public static final int DEFAULT_NUM = 20;

    // 返回结果
    protected List<T> result = Collections.emptyList();
    protected int totalCount = -1;

    // 分页参数
    private int pageNo = 1;
    private int pageSize = MIN_PAGESIZE;
    private String orderBy;
    private int totalPage = -1;

    // 域名
    private String baseUrl;

    // 构造函数
    public PageVO() {
        super();
    }

    /**
     * @return int 取得域 pageNo 的方法。
     */
    public int getPageNo() {
        return pageNo;
    }

    /**
     * @param pageNo 对域 pageNo 的设置方法.
     */
    public void setPageNo(int pageNo) {
        this.pageNo = pageNo;
    }

    /**
     * @return int 取得域 pageSize 的方法。
     */
    public int getPageSize() {
        return pageSize;
    }

    /**
     * @param pageSize 对域 pageSize 的设置方法.
     */
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    /**
     * @return String 取得域 orderBy 的方法。
     */
    public String getOrderBy() {
        return orderBy;
    }

    /**
     * @param orderBy 对域 orderBy 的设置方法.
     */
    public void setOrderBy(String orderBy) {
        this.orderBy = orderBy;
    }

    /**
     * @return List<T> 取得域 result 的方法。
     */
    public List<T> getResult() {
        return result;
    }

    /**
     * @param result 对域 result 的设置方法.
     */
    public void setResult(List<T> result) {
        this.result = result;
    }

    /**
     * @return int 取得域 totalCount 的方法。
     */
    public int getTotalCount() {
        return totalCount;
    }

    /**
     * @param totalCount 对域 totalCount 的设置方法.
     */
    public void setTotalCount(int totalCount) {
        this.totalCount = totalCount;
    }

    /**
     * @return int 取得域 totalPage 的方法。
     */
    public int getTotalPage() {
        return totalPage;
    }

    /**
     * @param totalPage 对域 totalPage 的设置方法.
     */
    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }

    /**
     * @return String 取得域 baseUrl 的方法。
     */
    public String getBaseUrl() {
        return baseUrl;
    }

    /**
     * @param baseUrl 对域 baseUrl 的设置方法.
     */
    public void setBaseUrl(String baseUrl) {
        this.baseUrl = baseUrl;
    }
}
